home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
076-100
/
disk_097
/
splines
/
readme
< prev
next >
Wrap
Text File
|
1992-05-06
|
4KB
|
108 lines
Welcome to the Wonderful World of Splines by Helene (Lee) Taran
OVERVIEW:
This program demonstrates various curve fitting and rendering
techniques. The user chooses a sequence of points and a curve
type, and the program generates and displays the appropriate
curve. A simple <..well...it looks simple> interface allows
the user to add, remove, and relocate points, in addition to
selecting a curve type.
Historical Note:
This program was written for my third assignment in
CS248A "Introduction to Computer Graphics" at Stanford.
It is an honor code violation for anyone to submit this program
for any class under any name other than my own.
COMPILING:
This program was compiled under Manx 3.30e using the +l option
(...I was too lazy to figure out int lengths...). The makefile
contains everything you need to put this mess together.
INTERFACE:
When the program is started, it fills the screen (wipes out the
window title bar), and draws a spline through 3 control points.
The program maintains a current sequence of control points and
a current curve type. Whenever either is changed, the window is
redrawn to show the the positions of the control points and
the curve defined by them.
To change the control points, the user presses the left mouse
button near one of the control points. The program pops up
a menu (right under the mouse position!) from which the user can
choose one of:
- Move this control point to a new location
- Add a control point before this one
- Add a control point after this one
- Remove this control point
To change the curve type, the user presses the mouse button
elsewhere in the window. The program pops up a menu, from which
the user can select a new curve type:
- Open cubic bspline
- Closed cubic bspline
- Open natural cubic spline
- Closed natural cubic spline
- Open cubic bspline with triple knotted endpoints
Addition Items in this menu:
- Redraw the current curve
- Draw/Erase the curve construction lines (AFrame)
- Quit
FILE DESCRIPTIONS:
spline:
The executable.
popmenu.h, popmenu.c:
These files implement all of the popup menu routines. To
use the popup menu package, see popmenu.README
spline.h, spline.c:
Constant declarations and Main program, respectively. The
main program basically just sleeps until the user does something
(clicks a mouse button) and then calls ProcessCmd to determine
what to do next.
sprt.c:
Sets up the environment. Contains routins to the necessary
libraries, set up the screen, window, colors, popup menus
that are being used. Also contains routines to close
everything and signal fatal errors.
bspline.c:
Implements the three basic bspline drawing routines.
bezier.h, bezier.c:
These files implement a bezier curve render. The basic
algorithm was outlined for us in CS248A.
cmds.c:
This file contains routines determine what's done when
a user selects a particular item from a given menu.
dlist.h, dlist.c:
These files implement a general interface to doubly linked
circular lists. Provides O(1) access to the first and
last elements of the list, and O(1) access to the length
of the list.
interpl.c:
Implements the interpolation and rendering of natural
cubic splines (both open and closed). The rendering routines
depend on the bspline drawing routines.
BUGS : none known.